package br.com.fox.iebav.session;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.inject.Named;

import br.com.fox.iebav.controller.command.SalvarSituacaoLote;
import br.com.fox.iebav.controller.command.SalvarUnidadeLance;
import br.com.fox.iebav.entity.Situacoeslote;
import br.com.fox.iebav.entity.Unidadeslance;
import br.com.fox.iebav.session.abstractsession.AbstractSession;

@Named("situacaoLoteBeanSession")
@SessionScoped
public class SituacaoLoteBeanSession extends AbstractSession implements Serializable {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
//	ATRIBUTOS
	private List<Situacoeslote> situacoeslotesList;
	private Situacoeslote situacaoLoteSelecionado;
	
//	CONTROLLER COMMAND
	private @EJB SalvarSituacaoLote salvarSituacaoLote;
	private Map<String, Object> resultMap;
	
	
	@PostConstruct
	public void init()
	{
		setSituacaoLoteSelecionado(new Situacoeslote());
		carregarSituacoesLote();
		redirecionarURL("situacoesLote.java");
	}		
	
	public void carregarSituacoesLote()
	{
		setSituacoeslotesList( salvarSituacaoLote.getSituacoeslotedao().findAll() );
	}
	
	public void abrirSituacoesLoteSelecionado()
	{
		redirecionarURL("situacaoLotePersistencia.java");
	}
	
	public void novaSituacaoLote()
	{
		setSituacaoLoteSelecionado(new Situacoeslote());
		redirecionarURL("situacaoLotePersistencia.java");
	}
	
	public void salvarSituacaoLote()
	{
		resultMap = salvarSituacaoLote.execute(getSituacaoLoteSelecionado());
		if( ( (Boolean) resultMap.get("resultado") ) )
			facesMensagens(FacesMessage.SEVERITY_INFO,((String)resultMap.get("mensagem")),"");
		else
			facesMensagens(FacesMessage.SEVERITY_ERROR,((String)resultMap.get("mensagem")),"");
		carregarSituacoesLote();
	}

	public List<Situacoeslote> getSituacoeslotesList() {
		return situacoeslotesList;
	}

	public void setSituacoeslotesList(List<Situacoeslote> situacoeslotesList) {
		this.situacoeslotesList = situacoeslotesList;
	}

	public Situacoeslote getSituacaoLoteSelecionado() {
		return situacaoLoteSelecionado;
	}

	public void setSituacaoLoteSelecionado(Situacoeslote situacaoLoteSelecionado) {
		this.situacaoLoteSelecionado = situacaoLoteSelecionado;
	}

}
